package com.hxht.storage.server.service;

import org.quartz.SchedulerException;
import org.quartz.TriggerKey;

import com.hxht.storage.server.bean.PlanRecordParamBean;

public interface SchedulerService {

	/** 从quartz数据库中恢复被中断的quartz scheduler job */
	void resumeQuartzScheduler();
	
	/** 删除一个Trigger */
	boolean removeTrigger(TriggerKey key) throws SchedulerException ;
	
	/** nvr注册后，需要扫描并初始化ip通道的任务。<br/>
	 *  如果初始化ip通道失败 则启动quartz定时任务，去初始化该nvr的ip通道
	 *  */
	void scheduleInitScanIpchannelJob(String sn);
	
	/** 解除nvr ip通道绑定的任务 */
	void scheduleUnbindIpchannelJob(String sn, int channel);
	
	/** 定时关闭ip通道录像的任务 */
	void scheduleStopRecordJob(String sn, int channel, boolean isUnbindIpchannel, int recordDuration);
	
	/** nvr处于不在线状态时，需要定期去连接nvr，更新在线状态 */
	void scheduleScanNvrJob(String sn);
	
	/** 当下发ip通道的计划录像参数失败时，需要定时去设置ip通道的计划录像参数 */
	void schedulePlanRecordJob(String sn, int channel, PlanRecordParamBean param);
}
